package com.huawei.appgallery.foundation.ui.css;

import java.util.Iterator;
import java.util.Locale;
import org.json.JSONObject;

public class CSSStyleSheet {
    private CSSRule rootRule = new CSSRule("/");

    private CSSStyleSheet(JSONObject jSONObject) {
        parseRule(jSONObject);
    }

    public static CSSStyleSheet parse(String str) {
        try {
            return new CSSStyleSheet(new JSONObject(str));
        } catch (Exception e) {
            return null;
        }
    }

    public static CSSStyleSheet parse(JSONObject jSONObject) {
        if (jSONObject == null || jSONObject.length() == 0) {
            return null;
        }
        return new CSSStyleSheet(jSONObject);
    }

    public CSSRule getRootRule() {
        return this.rootRule;
    }

    private void parseRule(JSONObject jSONObject) {
        Iterator keys = jSONObject.keys();
        while (keys.hasNext()) {
            String str = (String) keys.next();
            if (str.startsWith(".")) {
                JSONObject optJSONObject = jSONObject.optJSONObject(str);
                if (optJSONObject != null) {
                    CSSRule cSSRule = new CSSRule(str.toLowerCase(Locale.US));
                    parseStyle(cSSRule, optJSONObject);
                    this.rootRule.addChildRule(cSSRule);
                }
            }
        }
    }

    private void parseStyle(CSSRule cSSRule, JSONObject jSONObject) {
        Iterator keys = jSONObject.keys();
        while (keys.hasNext()) {
            String str = (String) keys.next();
            if (str.startsWith(".")) {
                JSONObject optJSONObject = jSONObject.optJSONObject(str);
                CSSRule cSSRule2 = new CSSRule(str);
                cSSRule.addChildRule(cSSRule2);
                parseStyle(cSSRule2, optJSONObject);
            } else {
                cSSRule.addStyleDeclaration(str, jSONObject.optString(str));
            }
        }
    }
}
